package com.chengyu.core.service;



import com.chengyu.core.exception.ServiceException;
import com.chengyu.core.request.*;
import com.chengyu.core.response.FrontLoginConfigResponse;
import com.chengyu.core.response.LoginResponse;

import javax.servlet.http.HttpServletRequest;

/**
 * 移动端登录服务类
 */
public interface LoginService {

//    /**
//     * 发送短信验证码
//     * @param phone 手机号
//     * @return Boolean
//     */
//    Boolean sendLoginCode(String phone);

//    /**
//     * 手机号验证码登录
//     * @param loginRequest 登录信息
//     * @return LoginResponse
//     */
//    LoginResponse phoneCaptchaLogin(LoginMobileRequest loginRequest);
//
//    /**
//     * 手机号密码登录
//     * @param loginRequest 登录信息
//     * @return LoginResponse
//     */
//    LoginResponse phonePasswordLogin(LoginPasswordRequest loginRequest);

    /**
     * 微信公众号授权登录
     * @param request 登录参数
     * @return LoginResponse
     */
    LoginResponse wechatPublicLogin(WechatPublicLoginRequest request) throws ServiceException;

    /**
     * 微信登录小程序授权登录
     * @param request 用户参数
     * @return LoginResponse
     */
    LoginResponse wechatRoutineLogin(RegisterThirdUserRequest request) throws ServiceException;

    /**
     * 微信注册绑定手机号
     * @param request 请求参数
     * @return 登录信息
     */
    LoginResponse wechatRegisterBindingPhone(WxBindingPhoneRequest request);

    /**
     * 获取登录配置
     */
    FrontLoginConfigResponse getLoginConfig();

    /**
     * 微信登录App授权登录
     */
    LoginResponse wechatAppLogin(RegisterAppWxRequest request) throws ServiceException;

    /**
     * ios登录
     */
    LoginResponse ioslogin(IosLoginRequest loginRequest);

    /**
     * 校验token是否有效
     * @return true 有效， false 无效
     */
    Boolean tokenIsExist();
}
